#include <esp_log.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "utils/i2c/i2c_master/i2c_master_utils.h"
#include "utils/i2c/lcd_2004a/lcd_2004a.h"

//static const char*  TAG ="MAIN";
void app_main() {
    // 初始化I2C
    i2c_master_init();

    // 扫描I2C设备（可选）
    i2c_scan();

    // 初始化LCD，指定2行显示
    lcd_init(2, 0x27);

    // 显示测试内容
    lcd_set_cursor(0, 0);
    lcd_send_string("2 Line Display");

    lcd_set_cursor(0, 1);
    lcd_send_string("ESP32 LCD Demo");

    vTaskDelay(5000 / portTICK_RATE_MS);

    // 更改行数为4
    lcd_change_rows(4);

    // 显示4行内容
    lcd_clear();
    lcd_set_cursor(0, 0);
    lcd_send_string("4 Line Display");

    lcd_set_cursor(0, 1);
    lcd_send_string("Row 2: ESP32");

    lcd_set_cursor(0, 2);
    lcd_send_string("Row 3: LCD2004A");

    lcd_set_cursor(0, 3);
    lcd_send_string("Dynamic Rows!");

    // 循环显示计数器
    int counter = 0;
    char buf[10];

    while (1) {
        vTaskDelay(1000 / portTICK_RATE_MS);

        sprintf(buf, "%d", counter++);

        // 在最后一行显示计数器
        lcd_set_cursor(15, lcd_get_rows() - 1);
        lcd_send_string(buf);
    }
}